1. Field of the Invention
The present invention relates to methods for dynamically assigning network addresses. More specifically, this invention relates to a method for selectively assigning a network address to a client. In particular, this invention relates to a method for a client to selectively accept a network address from one of multiple servers in a single or multiple subnets.
2. Related Art
A Dynamic Host Confirmation Protocol (DHCP) can be used to dynamically assign network addresses, such as Internet Protocol (IP) addresses, in a computer network. FIG. 1 is a schematic block diagram of a typical network 10 having a client 20, such as a router, that dynamically requests an IP address from a DHCP server 30. Referring to FIG. 1, when the client 20 desires to connect to the network 10, it first establishes a network address. If it does not have an address permanently assigned, it must obtain one dynamically. To do this the client 20 sends out a DHCP request for a network address through its network input/output (I/O) port 21. The DHCP server 30 receives this request into its network I/O port 31 and responds by offering a network address from its pool of IP addresses 35 through its I/O port 31. The client 20 receives this offer into its I/O port 21 and accepts it by sending back a direct request for the proposed IP address. The server 30 then assigns the IP address to the client 20 and sends an acknowledgement back to the client. The client's network address is thereby established.
FIG. 2 is a schematic block diagram of a typical network 10A having a plurality of subnets 15A, 15B, 15C. In this figure, each subnet 15A, 15B, 15C includes a DHCP server 30A, 30B, 30C, respectively. It should be noted, however, that the multiple DHCP servers can be located in a single subnet. FIG. 3 is a schematic signal diagram illustrating signals sent between the client 20 and the plurality of DHCP servers 30A, 30B, 30C during a conventional DHCP transaction in the network 10A of FIG. 2.
In a conventional DHCP transaction in a network having multiple DHCP servers, a client broadcasts a DHCP request to obtain an IP address and other configuration parameters. More particularly, referring to FIGS. 2 and 3, a client 20 seeking a network address broadcasts a DHCP discover message DISCOVER over the network 10A. Routers 40 can relay signals between multiple subnets 15A, 15B, 15C, where present. Each network DHCP server 30A, 30B, 30C that receives the discover message sends back an offer OFFER1, OFFER2, OFFER3 to the client 20 with a proposed IP address (e.g., 1.9.x.x, 1.8.x.x., or 1.7.x.x, respectively). The proposed IP address can, for instance, correspond to a particular subnet.
The client 20 responds to the first offer it receives back by sending a request for the proposed address REQUEST to the server 30A that made the offer. In the example shown in FIG. 3, for example, the client 20 first receives, and therefore accepts, an offer OFFER1 from the first server 30A. The first server 30A then assigns the proposed IP address (1.9.x.x) to the client through an acknowledge ACK signal.
In the conventional DHCP transaction, therefore, the client accepts the first IP address offered to it, without distinguishing between the various offers it receives. Because the client does not distinguish between the DHCP offers it receives back from the DHCP servers on the network, it cannot give preference to a DHCP server having certain characteristics over the other DHCP servers. There is conventionally, therefore, no process for distinguishing between DHCP offers or selecting an optimal IP address for that particular client. Accordingly, it would be desirable to have a method of dynamically assigning IP addresses wherein a client dynamically selects an IP address from multiple offers received from multiple DHCP servers.